package com.base_data_handler.surfer;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.List;

/**
 * ClassName:SurferUtil
 * Description: surfer绘图工具类
 * Writer: XY
 * Create Date:2017年05月13日 上午11:26:23
 * Rewriter:
 * Rewrite Date:
 * Rewrite remark:调整格点数据创建方法，增加绘图功能及美化
 * Version:
 */
public class SurferUtil 
{
	public static void main(String[] args) 
	{
    	SurferUtil sf = new SurferUtil();
//    	sf.getRainSurferPicturePath("F:\\surfer绘图\\绘图调用文件\\surfer.txt", "F:\\surfer绘图\\成图\\", 101.5f, 104.5f, 36.5f, 39.7f,"WW.dat", "洪水.lvl", "wwsj.bln", "suferwwbj.bln", "中小河流洪水预警图例.png", false, "",1024,768,6,true);
    	//雨情快报，不填色只显示等值线
    	//sf.getRainPicturePath("F:\\surfer绘图\\绘图调用文件\\data.xls", "F:\\surfer绘图\\成图\\", 101.5f, 104.5f, 36.5f, 39.7f, "WW.dat", "", "wwsj.bln", "suferwwbj.bln", "", false, "降水等值线图",1024,768,2,false);
    	//预警信号填图方法
    	try {
    		sf.getRainPicturePath("F:\\surfer绘图\\绘图调用文件\\EC_2Tdata.xlsx", "F:\\surfer绘图\\成图\\", 101.5f, 104.5f, 36.5f, 39.7f, "baoji.dat", "", "bj.bln", "bj.bln", "", false, "降水等值线图",1024,768,2,false);

//			sf.getWarningPicturePath("F:\\surfer绘图\\成图\\", "baoji.dat", "bj.bln", "预警图例.png", 1024, 768, null, null, null, null);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	String filepath="F:\\surfer绘图\\绘图调用文件\\";
	/**
	 * 
	 * @param path  数据文件
	 * @param fileSavePath  图片保存路径
	 * @param xmin  经纬度范围
	 * @param xmax
	 * @param ymin
	 * @param ymax
	 * @param datName  站点标注文件
	 * @param lvlName  配色文件
	 * @param blankName 白化文件
	 * @param blnName  边界文件
	 * @param MapName  图例文件
	 * @param IsShowColorScale 是否显示色柱
	 * @param Title  标题
	 * @param picWidth  生成图片宽度
	 * @param PicHeight 生成图片高度
	 * @param Algo 插值方法,一般为2
	 * @param IsFillContour 是否填充
	 * @return 生成的图片完整路径
	 * @throws Exception
	 */
	public String getRainPicturePath(String path,String fileSavePath,double xmin,double xmax,double ymin,double ymax,String datName, String lvlName, String blankName, String blnName, String MapName, Boolean IsShowColorScale, String Title, int picWidth, int PicHeight,int Algo,Boolean IsFillContour) throws Exception
	{
	    String surferpath = "";
	    Surfer surfer=new Surfer();
	    try 
	    {
	    	//数据导入
		    surfer.openDataFile(path,xmin,xmax,ymin,ymax,Algo);  
		    //绘图
		    surferpath = surfer.getSurfacePic(fileSavePath,datName,lvlName,blankName,blnName,MapName,IsShowColorScale,Title,picWidth,PicHeight,IsFillContour);
	    }
	    catch (Exception e)
	    { 
	    	
	    	throw e;
	    }
	    return surferpath;
	}
	/**
	 * 
	 * @param fileSavePath 图片保存路径
	 * @param datName 站点标注
	 * @param blnName 边界文件
	 * @param MapName 图例文件
	 * @param picWidth 生成图片宽度
	 * @param PicHeight 生成图片高度
	 * @param FillContour1 一级预警 红色
	 * @param FillContour2 二级预警 橙色
	 * @param FillContour3 三级预警 黄色
	 * @param FillContour4 四级预警 蓝色
	 * @return 生成的图片完整路径
	 * @throws Exception
	 */
	public String getWarningPicturePath(String fileSavePath,String datName, String blnName, String MapName, int picWidth, int PicHeight,String FillContour1,String FillContour2,String FillContour3,String FillContour4) throws Exception
	{
	    String surferpath = "";
	    surferFillContour surferFillContour=new surferFillContour();
	    try 
	    {
	    	//填图
		    surferpath = surferFillContour.getWarningPic(fileSavePath,datName,blnName,MapName,picWidth,PicHeight,FillContour1,FillContour2,FillContour3,FillContour4);
	    }
	    catch (Exception e)
	    { 
	    	throw e;
	    }
	    return surferpath;
	}
}
